<?php

namespace App\Http\Controllers\ORM;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

//引入空间类元素
use App\UserModel;

class UserController extends Controller
{
    //
	function lst(){
		// return "User-let";
		//使用UserModel获取数据
		$data = UserModel::all();
		// dd($data);
		
		return view('orm.lst', [
			'data' => $data,
		]);
	}
	
	//给add方法添加依赖注入
	function add(Request $request){
		// return "User-add";
		if($request->isMethod('get')){
			// var_dump(csrf_field());
			//显示视图
			return view('orm.add');
		}elseif($request->isMethod('post')){
			//数据处理（收集post表单，插入到数据库）
			// dd($request->all());
			$user = UserModel::create($request->all());
			if($user->save()){
				return redirect('/orm/lst');
			}else{
				return redirect('/orm/add');
			}
		}
	}
	
	function edt(Request $request, $id){
		// return "User-edt";
		if($request->isMethod('get')){
			//显示视图
			$find = UserModel::find($id);//根据主键ID获取对应的一条记录
			// dd($find);
			return view('orm.edt', [
				'find' => $find,
			]);
		}elseif($request->isMethod('post')){
			/*
			//修改方法1：
			//数据处理（收集post表单，插入到数据库）
			// dd($request->all());
			$find = UserModel::find($id);
			
			//使用新的数据赋值
			$find->name = $request->input('name');
			$find->password = $request->input('password');
			if($find->save()){
				//成功
				return redirect('/orm/lst');
			}else{
				//失败
				return redirect('/orm/edt/'.$id);
			}
			*/
			
			//修改方法2：
			$re = UserModel::find($id)->update($request->all());
			if($re === false){
				//更新失败
				return redirect('/orm/edt'.$id);
			}else{
				//更新成功
				return redirect('/orm/lst');
			}
			
		}
	}
	
	function del($id){
		// return "User-del";
		$user = UserModel::find($id);
		$user->delete();
		return redirect('/orm/lst');
	}
	
	function relation($mode){
		// return "relation";
		switch($mode){
			case "1_1":{
				// $data = UserModel::find(1)->UserInfo();
				$data = UserModel::find(1)->UserInfo()->get();
				dd($data);
				break;
			}
			case "1_n":{
				$data = UserModel::find(1)->Article()->get();
				dd($data);
				break;
			}
			case "n_1":{
				$data = UserModel::find(1)->Country()->get();
				dd($data);
				break;
			}
			case "n_n":{
				$data = UserModel::find(1)->Role()->get();
				dd($data);
				break;
			}
			default:{
				dd('默认');
				break;
			}
		}
	}
}
